package org.mongo.template.entity;

import lombok.Data;
import lombok.experimental.FieldNameConstants;
import org.mongo.template.enums.SexEnum;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.TypeAlias;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 涵盖了MongoDB的所有数据类型
 * @author qilongxin
 * @date 2021/7/29 12:06
 */
@Data
@FieldNameConstants
@TypeAlias(value = "person")
@Document(value = "person")
public class PersonEntity {

    private Integer pid;

    /**
     * 字符串类型：用户名
     */
    private String name;

    /**
     * 枚举类型：性别
     */
    private SexEnum sex;

    /**
     * 数字类型：年龄
     */
    private Integer age;

    /**
     * 日期类型：注册时间
     */
    private Date registerDate;

    /**
     * 数组类型（无序）：喜欢的事物
     */
    private Set<String> favorite;

    /**
     * 数组类型（有序）：个人履历
     */
    private List<String> experience;

    /**
     * 内嵌文档：数据模板
     */
    private List<Template> templateList;

    static class Template {
        // 模板id
        private String id;
        // 视图名称
        private String view;
        // 图片路径
        private String image;
    }

}
